//import java.util.*;
//public class Test0919 {
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        String  str=sc.next();
//        int n=sc.nextInt();
//        boolean sout=Parenthesis(str,n);
//        System.out.println(sout);
//
//
//    }
//    public static  boolean  Parenthesis(String A,int n){
//        Stack<Character> stack=new Stack<Character>();
//        if(A==null){
//            return false;
//        }
//        for(int i=0;i<n;i++){
//            if(A.charAt(i)=='('){
//                stack.push(A.charAt(i));
//
//            }else if(A.charAt(i)==')'){
//                if(stack.empty()){
//                    return false;
//                }else{
//                    stack.pop();
//                }
//            }else{
//                return false;
//            }
//        }
//        if(!stack.empty()){
//            return false;
//        }else{
//            return true;
//        }
//
//    }
//
//}


import java.util.*;
public class Test0919 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int f1 = 0;
        int f2 = 1;
        while (f2 <= n) {
            int t = f1 + f2;
            f1 = f2;
            f2 = t;
        }
        System.out.println((f2 - n) > (n - f1) ? n-f1: f2-n);
    }
}













